package Entities;

import java.io.Serializable;
import java.util.Date;
import javax.persistence.Basic;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import javax.xml.bind.annotation.XmlRootElement;

/**
 *
 * @author Ferrari
 */
@Entity
@Table(name = "hd_chamados")
@XmlRootElement
@NamedQueries({
    @NamedQuery(name = "HdChamados.findAll", query = "SELECT h FROM HdChamados h"),
    @NamedQuery(name = "HdChamados.findByCoChamado", query = "SELECT h FROM HdChamados h WHERE h.coChamado = :coChamado"),
    @NamedQuery(name = "HdChamados.findByDeChamado", query = "SELECT h FROM HdChamados h WHERE h.deChamado = :deChamado"),
    @NamedQuery(name = "HdChamados.findByDtCriacaoChamado", query = "SELECT h FROM HdChamados h WHERE h.dtCriacaoChamado = :dtCriacaoChamado"),
    @NamedQuery(name = "HdChamados.findByDtInicioSuporte", query = "SELECT h FROM HdChamados h WHERE h.dtInicioSuporte = :dtInicioSuporte"),
    @NamedQuery(name = "HdChamados.findByDtFinalizacaoSuporte", query = "SELECT h FROM HdChamados h WHERE h.dtFinalizacaoSuporte = :dtFinalizacaoSuporte"),
    @NamedQuery(name = "HdChamados.findByStChamado", query = "SELECT h FROM HdChamados h WHERE h.stChamado = :stChamado"),
    @NamedQuery(name = "HdChamados.findByDeSolucao", query = "SELECT h FROM HdChamados h WHERE h.deSolucao = :deSolucao"),
    @NamedQuery(name = "HdChamados.findByCoUser", query = "SELECT h FROM HdChamados h WHERE h.coUserResp = :coUserResp")})
public class HdChamados implements Serializable {
    private static final long serialVersionUID = 1L;
    
    public final static String findByUser = "HdChamados.findByCoUser";
    
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Basic(optional = false)
    @Column(name = "co_chamado")
    private Integer coChamado;
    @Basic(optional = false)
    @Column(name = "de_chamado")
    private String deChamado;
    @Basic(optional = false)
    @Column(name = "dt_criacao_chamado")
    @Temporal(TemporalType.TIMESTAMP)
    private Date dtCriacaoChamado;
    @Column(name = "dt_inicio_suporte")
    @Temporal(TemporalType.TIMESTAMP)
    private Date dtInicioSuporte;
    @Column(name = "dt_finalizacao_suporte")
    @Temporal(TemporalType.TIMESTAMP)
    private Date dtFinalizacaoSuporte;
    @Column(name = "st_chamado")
    private Integer stChamado;
    @Column(name = "de_solucao")
    private String deSolucao;
    @JoinColumn(name = "co_equipamento", referencedColumnName = "co_equipamento")
    @ManyToOne
    private HdEquipamento coEquipamento;
    @JoinColumn(name = "co_tipo_problema", referencedColumnName = "co_tipo_problema")
    @ManyToOne(optional = false)
    private HdTipoProblema coTipoProblema;
    @JoinColumn(name = "co_user_resp", referencedColumnName = "co_user")
    @ManyToOne(optional = false)
    private HdUsers coUserResp;
    @JoinColumn(name = "co_user_suporte", referencedColumnName = "co_user")
    @ManyToOne()
    private HdUsers coUserSuporte;

    public HdChamados() {
    }

    public HdChamados(Integer coChamado) {
        this.coChamado = coChamado;
    }

    public HdChamados(Integer coChamado, String deChamado, Date dtCriacaoChamado) {
        this.coChamado = coChamado;
        this.deChamado = deChamado;
        this.dtCriacaoChamado = dtCriacaoChamado;
    }

    public Integer getCoChamado() {
        return coChamado;
    }

    public void setCoChamado(Integer coChamado) {
        this.coChamado = coChamado;
    }

    public String getDeChamado() {
        return deChamado;
    }

    public void setDeChamado(String deChamado) {
        this.deChamado = deChamado;
    }

    public Date getDtCriacaoChamado() {
        return dtCriacaoChamado;
    }

    public void setDtCriacaoChamado(Date dtCriacaoChamado) {
        this.dtCriacaoChamado = dtCriacaoChamado;
    }

    public Date getDtInicioSuporte() {
        return dtInicioSuporte;
    }

    public void setDtInicioSuporte(Date dtInicioSuporte) {
        this.dtInicioSuporte = dtInicioSuporte;
    }

    public Date getDtFinalizacaoSuporte() {
        return dtFinalizacaoSuporte;
    }

    public void setDtFinalizacaoSuporte(Date dtFinalizacaoSuporte) {
        this.dtFinalizacaoSuporte = dtFinalizacaoSuporte;
    }

    public Integer getStChamado() {
        return stChamado;
    }

    public void setStChamado(Integer stChamado) {
        this.stChamado = stChamado;
    }

    public String getDeSolucao() {
        return deSolucao;
    }

    public void setDeSolucao(String deSolucao) {
        this.deSolucao = deSolucao;
    }

    public HdEquipamento getCoEquipamento() {
        return coEquipamento;
    }

    public void setCoEquipamento(HdEquipamento coEquipamento) {
        this.coEquipamento = coEquipamento;
    }

    public HdTipoProblema getCoTipoProblema() {
        return coTipoProblema;
    }

    public void setCoTipoProblema(HdTipoProblema coTipoProblema) {
        this.coTipoProblema = coTipoProblema;
    }

    public HdUsers getCoUserResp() {
        return coUserResp;
    }

    public void setCoUserResp(HdUsers coUserResp) {
        this.coUserResp = coUserResp;
    }

    public HdUsers getCoUserSuporte() {
        return coUserSuporte;
    }

    public void setCoUserSuporte(HdUsers coUserSuporte) {
        this.coUserSuporte = coUserSuporte;
    }

    @Override
    public int hashCode() {
        int hash = 0;
        hash += (coChamado != null ? coChamado.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof HdChamados)) {
            return false;
        }
        HdChamados other = (HdChamados) object;
        if ((this.coChamado == null && other.coChamado != null) || (this.coChamado != null && !this.coChamado.equals(other.coChamado))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "Entities.HdChamados[ coChamado=" + coChamado + " ]";
    }
    
}
